﻿'********************************************************************************
'*
'*      ダム切形成　フォーム
'*      A10  TC
'*      File Name : frmStartCompleteDamCutMold.vb
'*      Title     : ダム切形成画面
'*      機能    　：ダム切形成
'*
'********************************************************************************
'----------------------------------<<修正履歴>>----------------------------------
'ﾊﾞｰｼﾞｮﾝ   日付       作業者        ｺﾒﾝﾄ
'--------- ---------- ------------ -----------------------------------------------
' V1.0.0   2017/06/14 遠藤尚人      新規作成
' V3.0.0   2017/12/19 M.Sagawa      北京対応
' V4.0.0   2017/12/19 miao　　　　 北京対応（廃棄フレーム枚数の必須チェックを削除）
'********************************************************************************
Imports ICtagControl

Public Class frmStartCompleteDamCutMold

    '前工程の計上データ（完了MSラックNo）
    Private Const COMP_RACK As String = "RACK NO"
    '金型カテゴリー名
    Private Const MOLD_CATEGORY_NAME As String = "MJTC"

    '>>2018/1/31 佐川 キャリア交換対応
    '実行モード
    '0:表示 1:着工 2:製造完成 3:計上完成
    Private execMode As String = VIEW
    '<<2018/1/31 佐川 キャリア交換対応

    '>> 2018/02/14 佐川 金型連続使用チェック
    Private moldInspectionFlg As Boolean = False

    Private dtMoldInspectionData As New DataTable

    Dim outMachine As InSiteWebService.OutViewMachine
    Dim moldNo As String = ""
    Dim moldLotNo As String = ""
    '金型チェックフラグ
    Dim isMoldCheckFlg As Boolean = False
    '金型検査フラグ
    Dim isInspectionFlg As Boolean = False


    '<< 2018/02/14 佐川 金型連続使用チェック

    'Add Miaojf 2019/11/22 Begin
    'Overrides Sub selectTab()

    '    tabBase.SelectedIndex = 2

    '    Me.UpdateStyles()
    'End Sub
    'Public Overrides Sub SetFocus()

    '    btnBarCode1.Enabled = True
    '    btnBarCode1.PerformClick()

    '    'txt0102.Enabled = True
    '    'txt0102.Focus()
    'End Sub
    'Add Miaojf 2019/11/22 END

    '照合結果設定
    Public Overrides Sub SetPassScore()
        ' 設備タブ「金型」、情報タブ「受入MSラックNo1」,「受入MSラックNo2」のチェックを行う
        PASS_SCORE = 3
        ReDim m_iScore(PASS_SCORE - 1)
        m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK}

    End Sub

    '照合結果クリア
    Public Overrides Sub InitualizeCollData()
        '>>2018/2/6 佐川 RSB確認結果一覧No32
        ' 前工程のラックNo2が空の項目はチェック済み(1)に設定する。
        If IcTag.container2.Equals("") Then
            m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_CHECKED}
        Else
            m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK}
        End If
        '>>2018/2/6 佐川 RSB確認結果一覧No32

    End Sub

    'イベント設定
    Public Overrides Sub SetHandler()
        LNNG_MSG_FLG = True
        '受入MSラックNo1
        AddHandler txt0102.KeyPress, AddressOf beforeRackNo_KeyPress
        AddHandler btnBarCode1.Click, AddressOf btnMsRackNo_Click '2018/2/22 佐川 ラックNo入力動作を統一
        '受入MSラックNo2
        AddHandler txt0202.KeyPress, AddressOf beforeRackNo_KeyPress

        '完了MSラックNo1
        AddHandler txt0302.KeyPress, AddressOf afterRackNo_KeyPress
        AddHandler btnBarCode2.Click, AddressOf btnMsRackNo_Click '2018/2/22 佐川 ラックNo入力動作を統一
        '完了MSラックNo2
        AddHandler txt0402.KeyPress, AddressOf afterRackNo_KeyPress

        '廃棄フレーム数
        AddHandler lblFrameCount.Click, AddressOf TenKeyClick

        '再読込ボタン
        AddHandler btnRefresh.Click, AddressOf btnRefresh_Click

        '>> 2018/02/14 佐川 金型連続使用チェック
        '金型検査ボタン
        AddHandler btnMoldInspection.Click, AddressOf btnMoldInspection_Click
        '<< 2018/02/14 佐川 金型連続使用チェック

        ' >> 20180710 佐川 ラックNo途入力改善
        AddHandler txt0102.Click, AddressOf rackInputFocus
        AddHandler lbl0102.Click, AddressOf rackInputFocus
        AddHandler txt0202.Click, AddressOf rackInputFocus
        AddHandler lbl0202.Click, AddressOf rackInputFocus
        AddHandler lbl0302.Click, AddressOf afterRackInputFocus
        AddHandler txt0302.Click, AddressOf afterRackInputFocus
        AddHandler lbl0402.Click, AddressOf afterRackInputFocus
        AddHandler txt0402.Click, AddressOf afterRackInputFocus
        ' << 20180710 佐川 ラックNo途入力改善

    End Sub

    'Lot Noでデータベースからデータを取得する
    Public Overrides Sub GetDataByIcTag()

        '初期化
        InputDataClear()

        'ICタグのデータで画面を設定する
        SetFromTag()
        'If m_MoveInCheck = False Then Exit Sub
        'ロット部のセット
        setGridViewLot()

        If String.IsNullOrEmpty(IcTag.szUID) Then
            IcTag = LastTag
        End If

        '製造条件取得
        setJyokenData()

        '現物型式
        setDetailData()

        getHeadData()

        If IcTag.Status = TagProcessStatus.Ready Then
            '設備部の値を製造条件から設定
            For Each dr In dtJyokenData.Rows
                If dr(KOMOKUNAME).Equals(lbl1000.Tag) Then
                    '金型の設定
                    lbl1002.Text = DBNullTOblank(dr(KOMOKUDATA))
                End If
            Next
            '金型チェック
            checkMold()

            '前工程のデータ取得(廃棄フレーム数設定)
            'getPreInfoTabData()　'ADD 苗 2018/1/24
        ElseIf IcTag.Status = TagProcessStatus.Processing Or IcTag.Status = TagProcessStatus.ManufComplete Then 'ADD 苗 2018/1/24
            '設備・特殊部に現物型式をセット
            For Each dr In dtDetailData.Rows
                If dr("MNF_CND_TAG").Equals(lbl1000.Tag) Then
                    '適用金型の設定 製造条件、現物型式
                    lbl1002.Text = DBNullTOblank(dr("MNF_CONDITION")) 'UPD MIAO 2018/11/1
                    txt1003.Text = DBNullTOblank(dr("ACTUAL_MODEL")) 'UPD MIAO 2018/11/1
                ElseIf dr("MNF_CND_TAG").Equals(lbl0100.Tag) Then
                    If dr("SEQ") = 1 Then
                        '受入MSラックNo1
                        txt0102.Text = DBNullTOblank(dr("ACTUAL_MODEL")) 'UPD MIAO 2018/11/1
                    Else
                        '受入MSラックNo2
                        txt0202.Text = DBNullTOblank(dr("ACTUAL_MODEL")) 'UPD MIAO 2018/11/1
                    End If

                ElseIf dr("MNF_CND_TAG").Equals(lbl0200.Tag) Then
                    If dr("SEQ") = 1 Then
                        '完了MSラックNo1
                        txt0302.Text = DBNullTOblank(dr("ACTUAL_MODEL")) 'UPD MIAO 2018/11/1
                    Else
                        '完了MSラックNo2
                        txt0402.Text = DBNullTOblank(dr("ACTUAL_MODEL")) 'UPD MIAO 2018/11/1
                    End If
                End If
            Next
        Else
            ' 画面の初期設定側でエラー処理をするのでここでは無処理
        End If

        With m_dtMat
            If .Rows.Count > 0 Then
                '着完日時
                DisplayDate()
            Else
                If m_dtMat.Columns.Count > 0 Then
                    .Rows.Add()
                Else
                    .Columns.Add("BEGIN_TIME")
                    .Rows.Add()
                End If
            End If
        End With
        'ADD 苗 2018/1/5 BEGIN
        lblLostframe = lblFrameCount
        strLostFrame = lblSideQtyText.Text
        'ADD 苗 2018/1/5 END
        'ADD 苗 2018/1/24 BEGIN
        'L_TAG_LOTDATAからIC廃棄のフレーム枚数を画面に設定
        lblFrameCount.Text = IcTag.iDisposalFrmNum
        'ADD 苗 2018/1/24 END

        '>> 2018/02/15 佐川 金型連続使用チェック
        '金型チェックフラグ初期化
        isMoldCheckFlg = False
        isInspectionFlg = False
        btnMoldInspection.Text = getMsgStr("MSG10026")
        btnMoldInspection.Enabled = False
        '<< 2018/02/15 佐川 金型連続使用チェック

    End Sub

    '初期化、背景色の設定
    Public Sub InputDataClear()

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = VIEW
        '<<2018/1/31 佐川 キャリア交換対応

        'ロットタブの初期化
        clearActualModel()

        '金型初期化
        lbl1002.Text = String.Empty
        txt1003.Text = String.Empty
        txt1003.BackColor = NORMAL_INIT_COLOR
        lbl1003.BackColor = NORMAL_INIT_COLOR

        '受入MSラックNo1初期化
        txt0102.Text = String.Empty
        txt0102.BackColor = BARCODE_INIT_COLOR
        lbl0102.BackColor = BARCODE_INIT_COLOR

        '受入MSラックNo2初期化
        txt0202.Text = String.Empty
        txt0202.BackColor = BARCODE_INIT_COLOR
        lbl0202.BackColor = BARCODE_INIT_COLOR

        '完了MSラックNo1初期化
        txt0302.Text = String.Empty
        txt0302.BackColor = BARCODE_INIT_COLOR
        lbl0302.BackColor = BARCODE_INIT_COLOR

        '完了MSラックNo2初期化
        txt0402.Text = String.Empty
        txt0402.BackColor = BARCODE_INIT_COLOR
        lbl0402.BackColor = BARCODE_INIT_COLOR

        '廃棄フレーム数初期化
        lblFrameCount.Text = String.Empty
        lblFrameCount.BackColor = NORMAL_INIT_COLOR

        '開始作業者No
        txtOptNoStt.Text = String.Empty
        '終了作業者No
        txtOptNoEnd.Text = String.Empty

        '>> 2018/02/14 佐川 金型連続使用チェック
        '金型チェックフラグ初期化
        isMoldCheckFlg = False
        isInspectionFlg = False
        btnMoldInspection.Text = getMsgStr("MSG10026")
        btnMoldInspection.Enabled = False
        '<< 2018/02/14 佐川 金型連続使用チェック
        If AUTO_MANUAL_BTN = TYPE_AUTO Then
            setAutoScreen(True)
        Else
            setAutoScreen(False)
        End If
    End Sub

    '画面データ保存（着工時）
    Public Overrides Function SaveEquipMat(ByRef szBeginTime As DateTime) As Boolean

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = BEGIN
        '<<2018/1/31 佐川 キャリア交換対応

        If saveDetail(BEGIN) < 0 Then
            Return False
        Else
            Return True
        End If

        Return True
    End Function

    '画面データ保存(製造完成)
    Public Overrides Function SaveCompleteInfo(Optional ByVal status As ProcessStatus = ProcessStatus.ManufComplete) As Integer

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = COMPLETE
        '<<2018/1/31 佐川 キャリア交換対応

        dtDBUpd.Clear()
        Return saveDetail(COMPLETE)
    End Function

    '画面データ保存(計上完成)
    Public Overrides Function SaveTotalInfo() As Integer

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = TOTAL
        '<<2018/1/31 佐川 キャリア交換対応

        dtDBUpd.Clear()
        m_cLotDefect.insertRackInfo(txtLotNo.Text, lblProcessCD.Text, txt0302.Text, "", "", "", "")
        Return saveDetail(TOTAL)
    End Function

    '工程明細テーブル処理
    Private Function saveDetail(ByVal type As String) As Integer
        setLotData()
        Dim rowsCnt As Integer = dtDBUpd.Rows.Count
        Dim addIndex As Integer = 0

        '設備タブのデータセット
        '適用金型
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl1000.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION) = lbl1002.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt1003.Text
        addIndex += 1

        '情報タブのデータセット

        '受入MSラックNo1
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0100.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 0
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0102.Text
        addIndex += 1

        '受入MSラックNo2
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0100.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 0
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 2
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0202.Text
        addIndex += 1

        If type <> BEGIN Then
            '完了MSラックNo1
            dtDBUpd.Rows.Add()
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0200.Tag
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 0
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0302.Text
            addIndex += 1

            '完了MSラックNo2
            dtDBUpd.Rows.Add()
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0200.Tag
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 0
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 2
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0402.Text
            addIndex += 1

            '1/30 苗 履歴に保存するようにコメントを解除する
            '廃棄フレーム数
            dtDBUpd.Rows.Add()
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lblSideQtyText.Tag
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 0
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = lblFrameCount.Text
            addIndex += 1
        End If

        '廃棄フレーム数の格納
        m_disposalFrmNum = CInt(lblFrameCount.Text) 'ADD 苗 2018/1/24

        '>> 2018/02/14 佐川 金型連続使用チェック
        Dim retVal As Integer = m_cEquipMat.SaveDetail(lotNo, IcTag.szProcsCD, type,
                                      m_szTable, dtDBUpd, m_dtHeader,
                                      m_cIdohyo.EquipInfo.szEquipNo, serverTime)


        '製造完成or計上完成の場合、かつ金型検査ボタンが押下された場合は、更新処理を行う。
        If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
            If isInspectionFlg Then
                '製造完成or計上完成の場合は、金型検査履歴情報の更新を行う
                m_cDbMold.updateMoldInspection(lblProcessCD.Text, g_EQUIP_NO, moldNo, moldLotNo, lblBeginTime.Text)
                isInspectionFlg = False

                '製造完成で金型検査情報を登録した場合は、検査ボタンを押下不可にする。
                If execMode.Equals(COMPLETE) Then
                    btnMoldInspection.Enabled = False
                End If
            End If
        End If

        Return retVal
        '<< 2018/02/14 佐川 金型連続使用チェック
    End Function


    '計上完成時チェック処理
    Public Overrides Function EndCheck() As Boolean

        '完了MSラックNo1空白チェック
        If Not checkBlank(txt0302.Text, lbl0200.Text) Then
            checkColor(txt0302, False, lbl0302.Name)
            Return False
        End If

        '完了MSラックNo重複チェック
        If txt0302.Text.Equals(txt0402.Text) Then
            checkColor(txt0402, False, lbl0402.Name)
            Return False
        End If
        'DEL 苗 2018/1/5 BEGIN
        '廃棄フレーム数空白チェック
        'If Not checkBlank(lblFrameCount.Text, lblSideQtyText.Text) Then
        '    lblFrameCount.BackColor = ERROR_INIT_COLOR
        '    Return False
        'End If
        'DEL 苗 2018/1/5 END
        ' B-Site送信情報に設定
        'MyBase.m_iSideCheck = Integer.Parse(lblFrameCount.Text)

        'changeAttributeService用に値をセット
        changeAttributeRackNo1 = txt0302.Text
        changeAttributeRackNo2 = txt0402.Text

        IcTag.iDisposalFrmNum = lblFrameCount.Text 'ADD 苗 2018/1/24

        '>> 2018/02/19 佐川 bSiteから最新の金型情報を取得しチェックを行う
        checkMold()
        If m_iScore(0) = 0 Then
            Return False
        End If
        '<< 2018/02/19 佐川 bSiteから最新の金型情報を取得しチェックを行う

        '>> 2018/02/14 佐川 金型連続使用チェック
        If Not isInspectionFlg Then
            '金型変更チェックを行う
            checkMoldInspection()
            If isMoldCheckFlg Then
                isInspectionFlg = False
                btnMoldInspection.Text = getMsgStr("MSG10026")
                btnMoldInspection.Enabled = True
                setCheckInfo(Label3.Text & getMsgStr("MSG10026"))
                Return False
            End If
        End If
        '<< 2018/02/14 佐川 金型連続使用チェック
        Return True
    End Function

    '画面項目の表示切替
    Public Overrides Sub ConfScreenItem()
        If txtLotNo.TextLength > 0 Then
            If IcTag.Status = TagProcessStatus.Ready Then
                '着工待ち
                btnBarCode1.Enabled = True
                btnBarCode2.Enabled = False
                '受入MSラックNo1
                txt0102.BackColor = BARCODE_INIT_COLOR
                lbl0102.BackColor = BARCODE_INIT_COLOR
                '受入MSラックNo2
                txt0202.BackColor = BARCODE_INIT_COLOR
                lbl0202.BackColor = BARCODE_INIT_COLOR
                '完了MSラックNo1
                txt0302.BackColor = NORMAL_INIT_COLOR
                lbl0302.BackColor = NORMAL_INIT_COLOR
                '完了MSラックNo2
                txt0402.BackColor = NORMAL_INIT_COLOR
                lbl0402.BackColor = NORMAL_INIT_COLOR
                lblFrameCount.Enabled = False
            Else
                btnBarCode1.Enabled = False
                btnBarCode2.Enabled = True
                '受入MSラックNo1
                txt0102.BackColor = NORMAL_INIT_COLOR
                lbl0102.BackColor = NORMAL_INIT_COLOR
                '受入MSラックNo2
                txt0202.BackColor = NORMAL_INIT_COLOR
                lbl0202.BackColor = NORMAL_INIT_COLOR
                '完了MSラックNo1
                txt0302.BackColor = TENKEY_INIT_COLOR
                lbl0302.BackColor = TENKEY_INIT_COLOR
                '完了MSラックNo2
                txt0402.BackColor = TENKEY_INIT_COLOR
                lbl0402.BackColor = TENKEY_INIT_COLOR
                lblFrameCount.Enabled = True
                lblFrameCount.BackColor = TENKEY_INIT_COLOR
            End If

            '>> 2018/02/14 佐川 金型連続使用チェック
            '金型点検ボタン
            btnMoldInspection.Enabled = isMoldCheckFlg
            '<< 2018/02/14 佐川 金型連続使用チェック
        End If

    End Sub

    'DEL 苗 2018/1/24 BEGIN
    '' 情報タブの前工程データ取得
    'Protected Sub getPreInfoTabData()

    '    Dim Pre_Proc_Table As String = ""
    '    Dim Pre_Proc_Code As String = ""
    '    ' 前工程取得
    '    Dim dtPreProc = m_cData.GetPreProcCode(lblLotNo.Text, lblProcessCD.Text)
    '    If dtPreProc.Rows.Count > 0 Then
    '        ' 前工程の結果テーブル名設定
    '        Pre_Proc_Table = dtPreProc.Rows(0)("PROCTABLE")
    '        ' 前工程の工程コード設定
    '        Pre_Proc_Code = dtPreProc.Rows(0)("PREPROC")

    '        dtDetailData = New DataTable

    '        ' 着工前の場合は、前工程のデータを取得する。
    '        If IcTag.Status = TagProcessStatus.Ready Then
    '            ' 前工程の計上データ取得
    '            dtDetailData = m_cEquipMat.GetDetailResult(lblLotNo.Text, Pre_Proc_Code, TOTAL, Pre_Proc_Table)
    '            For Each dr In dtDetailData.Rows
    '                '取得データが存在した場合は値を設定する。
    '                If dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG).Equals(lblFrameCount.Tag) Then
    '                    '廃棄フレーム枚数に値を設定
    '                    lblFrameCount.Text = dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL)
    '                End If
    '            Next
    '        End If
    '    End If
    'End Sub
    'DEL 苗 2018/1/24 END

    '受入MSラックNo入力処理
    Private Sub beforeRackNo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        '頭に付いている'%'を消す
        Static Dim fIsPercentInput As Boolean = False
        If e.KeyChar = CChar("%") OrElse e.KeyChar = CChar("％") Then
            fIsPercentInput = True
            e.Handled = True
            Exit Sub
        End If
        If fIsPercentInput Then
            fIsPercentInput = False
            e.Handled = True
            Exit Sub
        End If

        '改行コードが入力された場合は、受入MSラックNoのチェックを行う
        If e.KeyChar = vbCr Then
            Dim txtData As TextBox = CType(sender, TextBox)
            txtData.Text = txtData.Text.ToUpper 'Add 苗 2018/4/10

            ''Add 苗 2019/11/24 Begin
            'Dim tmpLotNo As String
            'tmpLotNo = getLotNoByRack(txtData.Text)
            'If txtLotNo.Text = "" Or (tmpLotNo <> "" And txtLotNo.Text <> tmpLotNo) Then
            '    txtLotNo.Text = tmpLotNo
            '    If txtLotNo.Text.Trim() <> "" Then
            '        txtLotNo_KeyPress(txtLotNo, New KeyPressEventArgs(vbCr))
            '        'If AutoManualMode = 0 Then
            '        setRackNo()
            '        'End If
            '        Exit Sub
            '        End If
            '    End If
            ''Add 苗 2019/11/24 End

            If beforeRackNoCheck(sender, e) Then
                txtData.Enabled = False
                '>>2018/2/6 佐川 RSB確認結果一覧No32
                '受入MSラックNo1が前工程と一致しているかつ
                '着工前の場合は受入MSラックNo2を入力可能にしフォーカスを合わせる
                If txtData.Tag.Equals("01") And IcTag.Status = TagProcessStatus.Ready Then
                    '<<2018/2/6 佐川 RSB確認結果一覧No32
                    txt0202.Enabled = True
                    txt0202.Focus()
                    txt0202.BackColor = FOCUS_INIT_COLOR
                    lbl0202.BackColor = FOCUS_INIT_COLOR
                End If
            End If
        End If
    End Sub

    'Private Sub setRackNo()
    '    If IsNothing(IcTag.szLotNo) = False Then
    '        If IcTag.container1 <> "" Then
    '            txt0102.Text = IcTag.container1
    '            beforeRackNoCheck(txt0102, New System.EventArgs())
    '        End If
    '        If IcTag.container2 <> "" Then
    '            txt0202.Text = IcTag.container2
    '            beforeRackNoCheck(txt0202, New System.EventArgs())
    '        End If
    '    End If
    'End Sub


    '受入MSラックNoの入力値と前工程の整合性確認
    Private Function beforeRackNoCheck(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim txtData As TextBox = CType(sender, TextBox)
        Dim lblData As Label = txtData.Parent.Controls.Find(String.Format("lbl{0}02", txtData.Tag.ToString), False)(0)
        Dim idx As Integer = CInt(lblData.Name.Substring(3, 2))
        Dim preConsRackNo As String = String.Empty
        Dim procCheckResult As Boolean = False
        Dim preRackNoCount As Double = 0

        '受入MSラックNo1のみ空文字チェックを行う
        If txtData.Tag.Equals("01") Then
            '空白チェック
            If txtData.Text.Equals("") Then
                setCheckInfo(getMsgStr("MSG00020", lbl0100.Text))
                checkColor(sender, False, lblData.Name)
                m_iScore(idx) = 0
                Return False
            End If
        End If
        '>>20180313 大賀 搬送容器桁数チェックを共通化
        If Not txtData.Text.Equals("") Then
            ' ラックNoの桁数チェック
            If Not isCheckCaseLength(txtData, MS_RACK_CASE_NO_LENGTH, lblData) Then
                m_iScore(idx) = PASS_SCORE_WAIT_CHECK
                Return False
            End If
        End If
        '<<20180313 大賀 搬送容器桁数チェックを共通化

        '前工程のデータと比較
        '>>2018/1/31 佐川 キャリア交換対応
        If txtData.Text.Equals(IcTag.container1) Or txtData.Text.Equals(IcTag.container2) Then
            procCheckResult = True
        End If

        'For Each dr In dtPreDetailData.Rows
        '    If dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG).Contains(COMP_RACK) Then
        '        '前工程のラックNoの数をカウント
        '        preRackNoCount += 1
        '        '受入MSラックNo
        '        preConsRackNo = dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL)
        '        If dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL).Equals(txtData.Text) Then
        '            procCheckResult = True
        '            Exit For
        '        End If

        '    End If
        'Next
        '<<2018/1/31 佐川 キャリア交換対応

        '前工程のデータが1件のみで、MSラックNo2が空文字の場合は許可する。
        If preRackNoCount = 1 And Not txtData.Tag.Equals("03") Then
            If txtData.Text.Equals("") Then
                procCheckResult = True
            End If
        End If


        '受入MSラックNo1,2の重複チェック
        If txt0102.Text.Equals(txt0202.Text) Then
            setCheckInfo(getMsgStr("MSG00064", lbl0100.Text))
            If txtData.Tag.Equals("01") Then
                lbl0102.BackColor = Color.Red
                txt0102.BackColor = Color.Red
            Else
                lbl0202.BackColor = Color.Red
                txt0202.BackColor = Color.Red
            End If
            checkColor(sender, False, lblData.Name)
            txtData.SelectAll() '2018/2/22 佐川 ラックNo入力動作を統一
            m_iScore(idx) = 0
            Return False
        End If

        '前工程データに一致しない場合
        If Not procCheckResult Then
            setCheckInfo(getMsgStr("MSG00052", lbl0100.Text))
            checkColor(sender, False, lblData.Name)
            txtData.SelectAll() '2018/2/22 佐川 ラックNo入力動作を統一
            m_iScore(idx) = 0
            Return False
        End If

        checkColor(sender, True, lblData.Name)
        m_iScore(idx) = 1
        CheckCollScore()
        Return True
    End Function


    '完了MSラックNo入力処理
    Private Sub afterRackNo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        '頭に付いている'%'を消す
        Static Dim fIsPercentInput As Boolean = False
        If e.KeyChar = CChar("%") OrElse e.KeyChar = CChar("％") Then
            fIsPercentInput = True
            e.Handled = True
            Exit Sub
        End If
        If fIsPercentInput Then
            fIsPercentInput = False
            e.Handled = True
            Exit Sub
        End If

        '改行コードが入力された場合は、完了MSラックNoのチェックを行う
        If e.KeyChar = vbCr Then
            Dim txtData As TextBox = CType(sender, TextBox)
            txtData.Text = txtData.Text.ToUpper 'Add 苗 2018/4/10
            If afterRackNoCheck(sender, e) Then
                txtData.Enabled = False
            End If
        End If
    End Sub

    '完了MSラックNoチェック
    Function afterRackNoCheck(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim txtData As TextBox = CType(sender, TextBox)
        Dim lblData As Label = txtData.Parent.Controls.Find(String.Format("lbl{0}02", txtData.Tag.ToString), False)(0)
        Dim idx As Integer = CInt(lblData.Name.Substring(3, 2))

        '完了MSラックNo1のみ空文字チェックを行う
        If txtData.Tag.Equals("03") Then
            '空白チェック
            If txtData.Text.Equals("") Then
                setCheckInfo(getMsgStr("MSG00020", lbl0200.Text))
                checkColor(sender, False, lblData.Name)
                txtData.SelectAll() '2018/2/22 佐川 ラックNo入力動作を統一
                Return False
            End If
        End If


        If Not txtData.Text.Equals("") Then
            '>>20180313 大賀 搬送容器桁数チェックを共通化
            ' ラックNoの桁数チェック
            If Not isCheckCaseLength(txtData, MS_RACK_CASE_NO_LENGTH, lblData) Then
                Return False
            End If
            '<<20180313 大賀 搬送容器桁数チェックを共通化
            '>>2018/2/1 佐川 RSB確認結果一覧No64
            '前工程ラックNoと一致している場合はエラー
            If txtData.Text.Equals(txt0102.Text) Or txtData.Text.Equals(txt0202.Text) Then
                setCheckInfo(getMsgStr("MSG10018", txtData.Text))
                txtData.SelectAll() '2018/2/22 佐川 ラックNo入力動作を統一
                checkColor(sender, False, lblData.Name)
                Return False
            End If
            '<<2018/2/1 佐川 RSB確認結果一覧No64
        End If

        '完了MSラックNo1,2の重複チェック
        If txt0302.Text.Equals(txt0402.Text) Then
            setCheckInfo(getMsgStr("MSG00064", lbl0200.Text))
            If txtData.Tag.Equals("03") Then
                lbl0302.BackColor = Color.Red
                txt0302.BackColor = Color.Red
            Else
                lbl0402.BackColor = Color.Red
                txt0402.BackColor = Color.Red
            End If
            checkColor(sender, False, lblData.Name)
            txtData.SelectAll() '2018/2/22 佐川 ラックNo入力動作を統一
            Return False
        Else
            If txtData.Tag.Equals("03") Then
                txt0402.Enabled = True
                txt0402.Focus()
                txt0402.SelectAll() '2018/2/22 佐川 ラックNo入力動作を統一
                txt0402.BackColor = FOCUS_INIT_COLOR
                lbl0402.BackColor = FOCUS_INIT_COLOR
            End If
            checkColor(sender, True, lblData.Name)
            Return True
        End If

    End Function

    '金型チェック
    Private Sub checkMold()

        If String.IsNullOrEmpty(lbl1002.Text) Then
            txt1003.BackColor = Drawing.SystemColors.Control
            lbl1003.BackColor = Drawing.SystemColors.Control
            m_iScore(0) = PASS_SCORE_CHECKED
            Exit Sub
        End If
        'B-Site ViewMachineService
        Dim clientProcCd = GetBsiteClientString()
        'B-Siteからデータを取得
        '>> 2018/02/14 佐川 金型連続使用チェック
        outMachine = getViewLotService(clientProcCd)
        Dim MaterialList = getSubMachineListByCategory(outMachine, MOLD_CATEGORY_NAME)
        Dim getDataList = MaterialList.Where(Function(x) x.MachineTypeCode IsNot Nothing).ToList
        If getDataList.Count = 0 Then
            ' B-Siteから取得できない
            txt1003.Text = String.Empty
            lbl1003.BackColor = Color.Red
            txt1003.BackColor = Color.Red
            m_iScore(0) = PASS_SCORE_WAIT_CHECK
            'エラーメッセージを表示する
            setCheckInfo(getMsgStr("MSG00101", lbl1000.Text))
            Exit Sub
        End If
        '<< 2018/02/14 佐川 金型連続使用チェック
        Dim getData = getDataList.FirstOrDefault(Function(x) x.MachineTypeCode = lbl1002.Text)
        If getData Is Nothing Then
            ' 製造条件と一致しない
            setCheckInfo(getMsgStr("MSG10030", lbl1000.Text, makeViewMachineTypeString(getDataList)))
            lbl1003.BackColor = ERROR_INIT_COLOR
            txt1003.BackColor = ERROR_INIT_COLOR
            txt1003.Text = String.Empty
            m_iScore(0) = PASS_SCORE_WAIT_CHECK
            Exit Sub
        End If
        txt1003.Text = getData.MachineTypeCode.Trim
        '>> 2018/02/14 佐川 金型連続使用チェック
        moldNo = getData.MachineTypeCode
        moldLotNo = IIf(getData.Name Is Nothing, String.Empty, getData.Name)    '>> 20810322 大賀 No101 金型ロット番号がbSiteから応答されないと着工時異常終了する
        '<< 2018/02/14 佐川 金型連続使用チェック
        txt1003.BackColor = Drawing.SystemColors.Control
        lbl1003.BackColor = Drawing.SystemColors.Control
        m_iScore(0) = PASS_SCORE_CHECKED

    End Sub

    '再読込押下処理
    Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        checkMold()
    End Sub

    'テンキー表示処理
    Private Overloads Sub TenKeyClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
        MyBase.TenKeyClick(sender, e)
        btnDot.Enabled = False
        btnBar.Enabled = False
    End Sub

    '計上完成正常時の画面初期化
    Protected Overrides Sub initializForm()
        MyBase.initializForm()
        InputDataClear()
        txt0102.Focus() 'ADD 苗 2019/11/24
    End Sub
    'ADD 苗 2018/1/24 BEGIN
    '製造完成
    Protected Overrides Function ManufCompCheck() As Boolean
        Return EndCheck()
    End Function
    'ADD 苗 2018/1/24 END


    '受入MSラックNoタブキー対応
    Private Sub befroeRackNo_PreviewKeyDown(ByVal sender As Object, ByVal e As PreviewKeyDownEventArgs) Handles txt0102.PreviewKeyDown, txt0202.PreviewKeyDown
        'タブキーが押下された場合は、改行コードと見なし処理を行う
        If e.KeyCode = Keys.Tab Then
            e.IsInputKey = True
            beforeRackNo_KeyPress(sender, New KeyPressEventArgs(vbCr))
        End If
    End Sub

    '完了MSラックNoタブキー対応
    Private Sub AfterRackNo_PreviewKeyDown(ByVal sender As Object, ByVal e As PreviewKeyDownEventArgs) Handles txt0302.PreviewKeyDown, txt0402.PreviewKeyDown
        'タブキーが押下された場合は、改行コードと見なし処理を行う
        If e.KeyCode = Keys.Tab Then
            e.IsInputKey = True
            afterRackNo_KeyPress(sender, New KeyPressEventArgs(vbCr))
        End If
    End Sub

    '>>2018/1/31 佐川 キャリア交換対応
    'IcTag保存内容設定
    Protected Overrides Sub icTagDataSet()
        '製造完成、計上完成時は画面入力値の値を設定する。
        If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
            IcTag.container1 = txt0302.Text
            IcTag.container2 = txt0402.Text
            IcTag.container3 = String.Empty
            IcTag.container4 = String.Empty
            IcTag.container5 = String.Empty
        Else
            '初期値をそのまま保存するため、変更しない。
        End If
    End Sub
    '<<2018/1/31 佐川 キャリア交換対応

    '>> 2018/02/14 佐川 金型連続使用チェック
    '金型検査ボタン押下処理
    Private Sub btnMoldInspection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        If btnMoldInspection.Text.Equals(getMsgStr("MSG10026")) Then
            '未実施の場合は、実施済みに変更
            btnMoldInspection.Text = getMsgStr("MSG10027")
            isInspectionFlg = True
        Else
            '実施済みの場合は、未実施に変更
            btnMoldInspection.Text = getMsgStr("MSG10026")
            isInspectionFlg = False
        End If
    End Sub


    Protected Overrides Sub CheckCollScore()

        '開始作業者Noが未入力の場合は処理しない
        If txtOptNoStt.TextLength <= 0 Then
            Exit Sub
        End If

        Dim sum As Integer = 0
        For Each i As Integer In m_iScore
            sum += i
        Next
        If sum >= PASS_SCORE AndAlso lotCheckFlg = 1 Then
            '金型検査のチェックを行う
            checkMoldInspection()
            IcTag.szLotNo = txtLotNo.Text
            MyBase.CheckCollScore()
        End If
    End Sub

    '金型検査チェックを行う。
    Private Sub checkMoldInspection()

        '金型点検実施情報取得
        dtMoldInspectionData = New DataTable
        dtDetailData = m_cDbMold.GetMoldInspection(lblProcessCD.Text, g_EQUIP_NO)

        '<< 2018/02/19 佐川 DBが0件時の処理
        If dtDetailData.Rows.Count = 0 Then
            setCheckInfo(getMsgStr("MSG10025"))
            isMoldCheckFlg = True
            'bSite再取得（製造完成or計上完成）の場合は、ボタンの制御を行う
            If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
                btnMoldInspection.Enabled = isMoldCheckFlg
            End If
            Exit Sub
        End If
        '>> 2018/02/19 佐川 DBが0件時の処理

        '現在時間と前回実施時間を比較
        Dim ts As New TimeSpan(Now().Subtract(dtDetailData(0)("INSPECTION_DATE_TIME")).Ticks)

        '金型チェック
        If Not dtDetailData(0)("MOLD_MODEL").Equals(moldNo) Or Not dtDetailData(0)("MOLD_LOT_NO").Equals(moldLotNo) Then
            '金型型番号が異なる場合は、メッセージを表示する。
            setCheckInfo(getMsgStr("MSG10025"))
            isMoldCheckFlg = True

            '時間経過チェック
        ElseIf ts.Days >= 1 Then
            '金型検査の前回実施時間から1日以上経過している場合はメッセージを表示する。
            'setCheckInfo(getMsgStr("MSG10024"))
            isMoldCheckFlg = True
        Else
            isMoldCheckFlg = False
        End If

        'bSite再取得（製造完成or計上完成）の場合は、ボタンの制御を行う
        If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
            btnMoldInspection.Enabled = isMoldCheckFlg
        End If
    End Sub
    '<< 2018/02/14 佐川 金型連続使用チェック

    '>> 2018/2/22 佐川 ラックNo入力動作を統一
    ' ラックNo用バーコードクリック
    Protected Sub btnMsRackNo_Click(ByVal sender As Object, ByVal e As EventArgs)

        ' 入力フォーカスの設定
        Dim btn As Button = CType(sender, Button)
        Dim txtData As TextBox = btn.Parent.Controls.Find(String.Format("txt{0}02", btn.Tag.ToString), False)(0)
        Dim lblData As Label = txtData.Parent.Controls.Find(String.Format("lbl{0}02", txtData.Tag.ToString), False)(0)
        Dim textData2 As TextBox = btn.Parent.Controls.Find(String.Format("txt0{0}02", (CInt(btn.Tag) + 1).ToString), False)(0)
        Dim lblData2 As Label = txtData.Parent.Controls.Find(String.Format("lbl0{0}02", (CInt(btn.Tag) + 1).ToString), False)(0)

        txtData.Text = String.Empty
        textData2.Text = String.Empty
        txtData.Enabled = True
        txtData.Focus()
        txtData.SelectAll()
        txtData.BackColor = FOCUS_INIT_COLOR
        lblData.BackColor = FOCUS_INIT_COLOR
        textData2.BackColor = FOCUS_INIT_COLOR
        lblData2.BackColor = FOCUS_INIT_COLOR

    End Sub

    '<< 2018/2/22 佐川 ラックNo入力動作を統一

    ' >> 20180307 大賀 作業者入力確定時に次の入力にフォーカスを移動する
    ''' <summary>
    ''' 作業者入力後のフォーカスを各画面で設定する
    ''' 各画面でオーバーライドされない場合はTabIndex順に移動する
    ''' </summary>
    ''' <param name="inputType">作業者入力タイプ</param>
    ''' <param name="nowControl">対象コントロール</param>
    Protected Overrides Sub setNextFocus(ByVal inputType As OPERATER_INPUT_TYPE, ByVal nowControl As Control)
        If m_ProcessStatus <> ProcessStatus.Ready Then  ' ロット未入力の場合は処理しない
            If IcTag.Status = TagProcessStatus.Ready Then   ' 未着工
                If inputType = OPERATER_INPUT_TYPE.START_OPE Then
                    tabBase.SelectedTab = TabPageSp ' タブの移動
                    If String.IsNullOrEmpty(txt0102.Text) Then  ' 未入力の場合に入力可能にする
                        btnBarCode1.PerformClick()  ' バーコード入力ボタンを押す
                        Exit Sub
                    End If
                End If
            ElseIf IcTag.Status = TagProcessStatus.Processing Then  ' 着工中
                If inputType = OPERATER_INPUT_TYPE.END_OPE Then
                    tabBase.SelectedTab = TabPageSp ' タブの移動
                    If String.IsNullOrEmpty(txt0302.Text) Then  ' 未入力の場合に入力可能にする
                        btnBarCode2.PerformClick()  ' バーコード入力ボタンを押す
                        Exit Sub
                    End If
                End If
            ElseIf IcTag.Status = TagProcessStatus.ManufComplete Then ' 製造完成

            End If
        End If
        ' 各画面個別のフォーカスに移動しない場合は次のTabIndexに移動
        SelectNextControl(nowControl, True, True, True, True)
    End Sub
    ' << 20180307 大賀 作業者入力確定時に次の入力にフォーカスを移動する

    ' >> 20180710 佐川 ラックNo途入力改善
    Public Overrides Sub rackInputFocus(ByVal sender As Object, ByVal e As System.EventArgs)
        '未着工のみ選択可能にする
        If IcTag.Status = TagProcessStatus.Ready Then
            MyBase.rackInputFocus(sender, e)
        End If
    End Sub

    Public Sub afterRackInputFocus(ByVal sender As Object, ByVal e As System.EventArgs)
        '着工中のみ選択可能にする
        If IcTag.Status = TagProcessStatus.Processing Then
            MyBase.rackInputFocus(sender, e)
        End If
    End Sub
    ' << 20180710 佐川 ラックNo途入力改善
    Public Overrides Sub updateRackInfo()
        Dim rackNo As New ArrayList
        Dim dbLot As New clsDbLotDefect
        If txt0302.Text <> "" Then
            rackNo.Add(txt0302.Text)
        End If
        If txt0402.Text <> "" Then
            rackNo.Add(txt0402.Text)
        End If

        dbLot.DelInsRackInfo(IcTag.szLotNo, rackNo)
    End Sub

    Overrides Function chkMatChanged() As Boolean
        Dim pqc As New clsPQCCheck
        Dim katamei As String = ""
        Dim matlot As String = ""
        Dim rtn As Boolean = False
        pqc.selectPQC(lblEquipID.Text, katamei, matlot)

        If katamei = "" And txt1003.Text <> "" Then
            pqc.insertPQC(lblEquipID.Text, txt1003.Text, matlot)
            rtn = False
        End If
        If katamei <> "" Then
            If katamei = txt1003.Text Then
                rtn = False
            Else
                If txt1003.Text <> "" Then
                    pqc.updatePQC(lblEquipID.Text, txt1003.Text, matlot)
                    setChangeForPQC("SF ", "金型", "金型交换", "")
                End If

                rtn = True
            End If
        End If
        Return rtn
    End Function

    '----------2021 DC、TC、LTF自动着工对应0619

    Overrides Sub setinitializForm_FLG()
        initializForm_FLG = True
    End Sub

    Protected Overrides Sub setBeforeRackNo(Optional inputRackNo As String = "")

        If CUSTOMIZES_DC_TC_LTF_AUTO = True Then

            If IsNothing(IcTag.szLotNo) = False Then
                If IcTag.container1 <> "" Then
                    txt0102.Text = IcTag.container1
                    m_iScore(CInt(txt0102.Tag)) = PASS_SCORE_CHECKED
                End If
                If IcTag.container1 <> "" Then
                    txt0202.Text = IcTag.container2
                    m_iScore(CInt(txt0202.Tag)) = PASS_SCORE_CHECKED
                End If
            End If

        End If
    End Sub

    Protected Overrides Function setAfterRackNo(receiveData As receiveCommandData) As Boolean

        If CUSTOMIZES_DC_TC_LTF_AUTO = True Then

            If receiveData.UrackNoList.Count = 0 Then
                Return False
            End If
            '完工MS料盒设置
            If IsNothing(receiveData.UrackNoList(0)) = False Then
                txt0302.Text = receiveData.UrackNoList(0)
            End If
            If IsNothing(receiveData.UrackNoList(1)) = False Then
                txt0402.Text = receiveData.UrackNoList(1)
            End If
        End If
        Return True

    End Function
    Protected Overrides Sub setAutoScreen(mode As Boolean)

        Dim setColor As Color = NORMAL_INIT_COLOR
        Dim setEnabled As Boolean = Not (mode)

        '完工后，是否清空画面，清空后ictag也被清空（手动时为true,自动时为false)
        initializForm_FLG = setEnabled

        If mode = True Then
            setColor = NORMAL_INIT_COLOR
        Else
            setColor = Color.Yellow
        End If
        txt0102.Enabled = setEnabled
        txt0202.Enabled = setEnabled
        txt0302.Enabled = setEnabled
        txt0402.Enabled = setEnabled

        lbl0102.BackColor = setColor
        txt0102.BackColor = setColor

        lbl0202.BackColor = setColor
        txt0202.BackColor = setColor

        lbl0302.BackColor = setColor
        txt0302.BackColor = setColor

        lbl0402.BackColor = setColor
        txt0402.BackColor = setColor

        btnBarCode1.Enabled = setEnabled
        btnBarCode2.Enabled = setEnabled

        lblFrameCount.BackColor = setColor
        lblFrameCount.Enabled = setEnabled

    End Sub
    '------------------------------------------

End Class